package com.bbcare.cp.plat.service;

import java.util.List;
import java.util.Map;

import com.bbcare.cp.plat.entity.cp.CpNodeTask;
import com.bbcare.cp.plat.entity.cp.CpSchemeVersion;

/**
 * @name: 临床路径方案接口（通用接口独立出来）
 * @author: DemonLee
 * @createTime: 2018.4.20
 * @description: 临床路径方案及内容等相关的操作
 * @modify:
 * 
 */
public interface ICpSchemeTemplService {
    // 根据临床路径id查询建档内容接口
    public Map<String, Object> querySchemeArchive(Map<String, Object> argMap) throws Exception;

    // 根据临床路径id查询对应角色下该方案下所有阶段、节点及任务等
    public Map<String, Object> querySchemeStageNode(Map<String, Object> argMap) throws Exception;

    // 根据临床路径id查询临床路径及版本信息接口
    public Map<String, Object> querySchemeAndVersion(Map<String, Object> argMap) throws Exception;

    // 临床路径阶段及阶段下节点查询接口（关联角色）
    public Map<String, Object> querySchemeStageAndNode(Map<String, Object> argMap) throws Exception;

    // 临床路径阶段及阶段下节点查询接口（不关联角色）
    public Map<String, Object> querySchemeStageNodeNoRole(Map<String, Object> argMap) throws Exception;

    // 临床路径节点下的任务查询接口（关联角色）
    public Map<String, Object> queryCpSchemeNodeTask(Map<String, Object> argMap) throws Exception;

    // 临床路径节点下的任务查询接口（不关联角色）
    public List<CpNodeTask> listCpSchemeNodeTask(Map<String, Object> argMap) throws Exception;

    // 根据临床路径id和角色id 查询建档任务模板内容并返回
    Map<String, Object> querySchemeArchiveContTempl(Map<String, Object> argMap) throws Exception;

    // 临床路径临时随访节点模板查询
    public Map<String, Object> querySchemeTempNode(Map<String, Object> argMap) throws Exception;

    // 根据临床路径id获取路径内容详情（含缓存刷新等）
    public Map<String, Object> dealSchemeStageNode(Map<String, Object> argMap) throws Exception;

    // 任务内容模板查询及缓存处理
    public Map<String, Object> dealContTemplInfo(Map<String, Object> mapIn) throws Exception;
    
    // 根据路径版本id 查询路径id
    CpSchemeVersion qrySchemeVersionById(String id) throws Exception;
}
